package com.javaex.book.services;

import java.util.List;

import com.javaex.book.pojo.Cart;
import com.javaex.book.pojo.OrderItem;
import com.javaex.book.utils.Pagination;
import com.javaex.book.utils.ReturnResult;

/**
 * 订单相关服务
 *
 * @author 黄星琦
 * @Date 2022年5月23日
 */
public interface OrderService {

	/**
	 * 生成订单
	 * @param cart 购物车
	 * @param userId 用户id
	 * @return 订单号
	 */
	ReturnResult createOrder(Cart cart, Integer userId);
	
	/**
	 * 查询订单
	 * @param userId 用户id
	 * @param pageNo 页码
	 * @param pageSize 页容量
	 * @return 订单集合
	 */
	Pagination getOrderList(Integer userId, Integer pageNo, Integer pageSize);
	
	/**
	 * 获取订单详情
	 * @param orderId 订单id
	 * @return 订单项集合
	 */
	List<OrderItem> getOrderDetail(String orderId);
	
	/**
	 * 签收订单
	 * @param orderId 订单id
	 * @return 签收结果
	 */
	ReturnResult receiverOrder(String orderId);
	
	/**
	 * 订单发货
	 * @param orderId 订单id
	 * @return 发货结果
	 */
	ReturnResult sendOrder(String orderId);
	
	/**
	 * 删除订单
	 * @param orderId 订单id
	 * @return 删除结果
	 */
	ReturnResult deleteOrder(String orderId);
}
